home *** CD-ROM | disk | FTP | other *** search
- /* **************************************************************************************************** */
- /* * * */
- /* * X.25 Interface Library * */
- /* * ---------------------- * */
- /* * * */
- /* * X25_Interface.h * */
- /* * * */
- /* *..................................................................................................* */
- /* * * */
- /* * Definitions that are required in order to use the "X.25 Interface Library" set * */
- /* * of Interface Routines. * */
- /* * * */
- /* * * */
- /* *--------------------------------------------------------------------------------------------------* */
- /* * * */
- /* * Copyright © 1988-1990 Apple Computer, Inc. * */
- /* * All Rights Reserved * */
- /* * * */
- /* *--------------------------------------------------------------------------------------------------* */
- /* * * */
- /* * Revision History: * */
- /* * * */
- /* * Date Individual Changes * */
- /* * ......... ................... .......................................................... * */
- /* * * */
- /* * 05 Jul 88 D. N. Willey Original Version * */
- /* * " Rick Holzgrafe * */
- /* * * */
- /* * Aug 88 D. N. Willey Ongoing Changes * */
- /* * to * */
- /* * Nov 89 * */
- /* * * */
- /* * * */
- /* **************************************************************************************************** */
-
-
- #ifndef _X25_Interface_Includes_
- #define _X25_Interface_Includes_
-
- #include <Types.h>
- #include <Memory.h>
-
- #include <AppleTalk.h>
-
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Internal Definitions for the Transmission Control Block * */
- /* * * */
- /* **************************************************************************************************** */
-
-
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
- /* + + */
- /* + The User's "Completion Routine" (Part of Transmission Control Block) + */
- /* + + */
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-
- typedef pascal void (*X25_Complete_ProcPtr) ( void * tcb_ptr );
-
-
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
- /* + + */
- /* + Data Manipulation I/O Block (Part of Transmission Control Block) + */
- /* + + */
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-
- typedef struct X25_Data_def {
-
- /* Flag Field */
- unsigned Q_bit : 1; /* X.25 Q-bit for encode / decode routines */
- unsigned D_bit : 1; /* X.25 D-bit for encode / decode routines */
- unsigned M_bit : 1; /* X.25 M-bit for encode / decode routines */
- unsigned :13; /* */
-
- unsigned short max_length; /* Max Data Length of Buffer (bytes) */
- unsigned short req_length; /* Requested Data Length to Process (bytes) */
- unsigned short act_length; /* Actual Data Length Processed (bytes) */
- unsigned short reserved; /* Reserved for future use */
- void * data_ptr; /* Data Pointer */
-
- } X25_Data_def;
-
-
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
- /* + + */
- /* + Async/Sync I/O Block (Part of Transmission Control Block) + */
- /* + + */
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-
- typedef struct X25_IO_def {
-
- OSErr return_code; /* Returned Error Code (async I/O) */
- OSErr status_code; /* Detailed Status Code (async I/O) */
-
- X25_Complete_ProcPtr completion; /* Completion routine for Asynchronous I/O */
-
- short timeout; /* Timeout value for Synchronous I/O */
-
- /* Flag Field */
- unsigned IF_asynchronous : 1; /* Request Asynchronous Operation */
- unsigned IF_expedited : 1; /* Request Expedited Transmission */
- unsigned IF_more : 1; /* More data to come */
- unsigned IF_partial_read : 1; /* Partial Read Request / Response */
- unsigned :12; /* */
-
- unsigned short max_length; /* Max Data Length of Buffer (bytes) */
- unsigned short req_length; /* Requested Data Length to Transfer (bytes) */
- unsigned short act_length; /* Actual Data Length Transfered (bytes) */
- unsigned short reserved; /* Reserved for future use */
- void * data_ptr; /* Data Pointer */
-
- } X25_IO_def;
-
-
-
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
- /* + + */
- /* + Transmission Control Block + */
- /* + + */
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-
- typedef struct tcb_def {
-
- OSErr return_code; /* Returned Error Code */
- OSErr status_code; /* Detailed Status Code */
-
- long ref_con; /* Users Reference (value or pointer) */
-
- X25_Data_def aux_read_data; /* Input Area for Data Manipulation Operations */
- X25_Data_def aux_write_data; /* Output Area for Data Manipulation Operations */
-
- X25_IO_def read_data; /* Async/Sync Read Area */
- X25_IO_def write_data; /* Async/Sync Write Area */
-
- /* .................................................................................................... */
- /* . . */
- /* . *** INTERNAL USE ONLY *** . */
- /* . The following fields are reserved for internal use only and may change . */
- /* . . */
- /* .................................................................................................... */
-
- void * vccb_ref_ptr; /* Virtual Circuit Control Block pointer */
- struct tcb_def * tcb_chain_ptr;
- long quit_time;
-
- } tcb_def;
-
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Return Codes ( "return_code" ) * */
- /* * * */
- /* **************************************************************************************************** */
-
- /* .................................................................................................... */
- /* . . */
- /* . Non Errors . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_no_error 0x0000 /* Good Return ( not an error ) */
- #define X25if_io_pending 0x0001 /* Set while async I/O is incomplete */
- #define X25if_io_would_block 0x0002 /* Set if blocking I/O would block */
- #define X25if_user_cancelled 0x0008 /* From AddressBook etc. */
-
- /* .................................................................................................... */
- /* . . */
- /* . User Procedure Error on Call (permanent) . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_procedure_error 0x0010
- #define X25if_resource_call_not_allowed 0x0012
- #define X25if_async_io_not_allowed 0x0013
- #define X25if_init_prior_call 0x0018 /* returned on a X25_Open call */
- #define X25if_init_no_call 0x0019 /* returned on a X25_Open or X25_Close call */
- #define X25if_vccb_prior_allocation 0x001A
- #define X25if_vccb_no_allocation 0x001B
- #define X25if_vccb_not_closed 0x001C
- #define X25if_vccb_not_open 0x001D
-
- /* .................................................................................................... */
- /* . . */
- /* . User Procedure Error on Call (temporary) . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_procedure_error_temp 0x0020
- #define X25if_server_prior_connect 0x0022 /* high byte = server connection state */
- #define X25if_server_not_connected 0x0023 /* high byte = server connection state */
- #define X25if_server_invalid_state 0x0024 /* high byte = actual state / low byte = expected */
- #define X25if_user_prior_validation 0x0026 /* high byte = server validation state */
- #define X25if_user_not_validated 0x0027 /* high byte = server validation state */
- #define X25if_validation_invalid_state 0x0028 /* high byte = actual state / low byte = expected */
- #define X25if_vc_not_closed 0x002A /* high byte = circuit state */
- #define X25if_vc_not_open 0x002B /* high byte = circuit_state */
- #define X25if_vc_invalid_state 0x002C /* high byte = actual state / low byte = expected */
-
- /* .................................................................................................... */
- /* . . */
- /* . Error on Communication to X.25 Server . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_transmission_error 0x0030
- #define X25if_adsp_shutdown 0x0031
- #define X25if_ipc_shutdown 0x0032
- #define X25if_adsp_error 0x0033 /* status_code = adsp/driver error code */
- #define X25if_ipc_error 0x0034 /* status_code = apple_ipc error code */
- #define X25if_server_error 0x003A /* status_code = server error code */
-
- /* .................................................................................................... */
- /* . . */
- /* . Internal Consistency Checks . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_consistency_error 0x0040
- #define X25if_global_area_corrupted 0x0041
- #define X25if_vccb_corrupted 0x0042
-
- /* .................................................................................................... */
- /* . . */
- /* . Request for Support that is Not Available . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_no_support 0x0050
- #define X25if_adsp_no_support 0x0051 /* returned on a "X25_Server_Connect" request */
- #define X25if_ipc_no_support 0x0052 /* returned on a "X25_Server_Connect" request */
-
- /* .................................................................................................... */
- /* . . */
- /* . Request for Component that is Not Available . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_service_not_avail 0x0060
- #define X25if_mpp_not_avail 0x0061 /* returned on a "X25_Server_Connect" request */
- #define X25if_mpp_ver_error 0x0062 /* high byte = actual / low byte = minimum ver */
- #define X25if_dsp_not_avail 0x0063 /* returned on a "X25_Server_Connect" request */
- #define X25if_dsp_ver_error 0x0064 /* high byte = actual / low byte = minimum ver */
- #define X25if_ipc_not_avail 0x0065 /* returned on a "X25_Server_Connect" request */
- #define X25if_ipc_ver_error 0x0066 /* high byte = actual / low byte = minimum ver */
-
- /* .................................................................................................... */
- /* . . */
- /* . Request for X.25 Server that is Not Available . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_server_not_avail 0x0070 /* returned on a "X25_Server_Connect" request */
- #define X25if_server_refused 0x0071 /* returned on a "X25_Server_Connect" request */
- #define X25if_server_no_vcs 0x0074 /* returned on a "X25_Server_Connect" request */
-
- /* .................................................................................................... */
- /* . . */
- /* . User Validation Failure . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_validation_failure 0x0080 /* returned on a "X25_Server_Connect" request */
- #define X25if_invalid_validator_ver 0x0081 /* high byte = actual / low byte = expected */
- #define X25if_invalid_validator_msg 0x0082 /* returned on a "X25_Server_Connect" request */
- #define X25if_no_validator 0x0083 /* returned on a "X25_Server_Connect" request */
- #define X25if_validator_shutdown 0x0084 /* returned on a "X25_Server_Connect" request */
- #define X25if_overlength_user_name 0x0088 /* returned on a "X25_Set_User_ID" request */
- #define X25if_overlength_user_password 0x0089 /* returned on a "X25_Set_User_ID" request */
- #define X25if_invalid_user_name 0x008C /* returned on a "X25_Server_Validate" request */
- #define X25if_invalid_user_password 0x008D /* returned on a "X25_Server_Validate" request */
-
- /* .................................................................................................... */
- /* . . */
- /* . System Detected Errors . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_system_error 0x00A0
- #define X25if_OS_error 0x00A1 /* status_code = actual O.S. error code */
- #define X25if_no_tsk_mem_alloc 0x00A2 /* status_code = memory bytes request */
- #define X25if_no_sys_mem_alloc 0x00A3 /* status_code = memory bytes request */
- #define X25if_low_stack_space 0x00A8 /* status_code = stack space remaining */
- #define X25if_vbl_tsk_install_failed 0x00AA
- #define X25if_stack_tsk_install_failed 0x00AB
-
- /* .................................................................................................... */
- /* . . */
- /* . I/O Errors . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_io_error 0x0100
- #define X25if_io_aborted 0x0101 /* Set in result_code of async read or write */
- /* If X25_Kill_Read, X25_Kill_Write, or */
- /* X25_Server_Discnct was called */
- #define X25if_io_timeout 0x0102 /* For synchrouous I/0 calls only */
-
- /* .................................................................................................... */
- /* . . */
- /* . Read Related . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_read_buffer_error 0x0110
- #define X25if_read_nil_ptr 0x0111
- #define X25if_read_buf_alignment 0x0112
- #define X25if_read_buf_overflow 0x0113 /* status_code = required buffer space */
- #define X25if_prior_read_pending 0x0115
-
- /* .................................................................................................... */
- /* . . */
- /* . Write Related . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_write_buffer_error 0x0120
- #define X25if_write_nil_ptr 0x0121
- #define X25if_write_buf_alignment 0x0122
- #define X25if_write_buf_overflow 0x0123
- #define X25if_write_buf_underflow 0x0124
- #define X25if_prior_write_pending 0x0125
-
- /* .................................................................................................... */
- /* . . */
- /* . Aux Read Buffer Related . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_a_r_buffer_error 0x0130
- #define X25if_a_r_nil_ptr 0x0131
- #define X25if_a_r_buf_alignment 0x0132
- #define X25if_a_r_buf_overflow 0x0133 /* status_code = required buffer space */
-
- /* .................................................................................................... */
- /* . . */
- /* . Aux Write Buffer Related . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_a_w_buffer_error 0x0140
- #define X25if_a_w_nil_ptr 0x0141
- #define X25if_a_w_buf_alignment 0x0142
- #define X25if_a_w_buf_overflow 0x0143
- #define X25if_a_w_buf_underflow 0x0144
-
- /* .................................................................................................... */
- /* . . */
- /* . Message Header Errors (Read) . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_header_error 0x0180
- #define X25if_unknown_header 0x0181 /* status_code = header "Type" */
- #define X25if_header_destination 0x0182 /* high byte = actual / low byte = expected */
- #define X25if_header_source 0x0183 /* high byte = actual / low byte = expected */
- #define X25if_header_version 0x0184 /* high byte = actual / low byte = expected */
- #define X25if_header_remote_rej 0x0185
- #define X25if_unexpected_header 0x0188 /* status_code = received header "Type" */
- #define X25if_header_underflow 0x018A /* status_code = received header length */
- #define X25if_header_overflow 0x018B /* status_code = received header length */
-
- /* .................................................................................................... */
- /* . . */
- /* . Message Errors (Read) . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_message_error 0x0190
- #define X25if_unknown_message 0x0191 /* status_code = received message "Type" */
- #define X25if_message_version 0x0194 /* high byte = actual / low byte = expected */
- #define X25if_unexpected_message 0x0198 /* status_code = received message "Type" */
- #define X25if_message_underflow 0x019A /* status_code = received message length */
- #define X25if_message_overflow 0x019B /* status_code = received message length */
-
- /* .................................................................................................... */
- /* . . */
- /* . X.25 Packet Errors (Read) . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_packet_error 0x01A0
- #define X25if_packet_overflow 0x01A1 /* status_code = packet length */
- #define X25if_packet_underflow 0x01A2 /* status_code = packet length */
- #define X25if_unexpected_packet 0x01A3 /* status_code = packet type code */
- #define X25if_unknown_packet 0x01A4 /* status_code = packet type code */
-
- /* .................................................................................................... */
- /* . . */
- /* . X.25 Packet Encode Errors (Syntax) . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_syntax_error 0x0200 /* status_code = input buffer offset to error */
- #define X25if_underlength_field 0x0201 /* status_code = input buffer offset to error */
- #define X25if_overlength_field 0x0202 /* status_code = input buffer offset to error */
- #define X25if_field_value_too_small 0x0203 /* status_code = input buffer offset to error */
- #define X25if_field_value_too_large 0x0204 /* status_code = input buffer offset to error */
- #define X25if_field_value_illegal 0x0206 /* status_code = input buffer offset to error */
- #define X25if_duplicate_facility 0x0208 /* status_code = input buffer offset to error */
- #define X25if_inconsistent_facility 0x0209 /* status_code = input buffer offset to error */
- #define X25if_excess_facility_data 0x020C /* status_code = input buffer offset to error */
-
- /* .................................................................................................... */
- /* . . */
- /* . X.25 Packet Encode Errors (Other) . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_packet_encode_error 0x0210
- #define X25if_data_packet_overflow 0x0211 /* status_code = max data packet size */
- #define X25if_configured_net_addr 0x021D
-
- /* .................................................................................................... */
- /* . . */
- /* . X.25 Packet Decode Errors . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_packet_decode_error 0x0220
- #define X25if_data_packet_overflow 0x0211 /* status_code = max data packet size */
- #define X25if_packet_overflow 0x0212 /* status_code = max packet size */
- #define X25if_packet_addr_decode 0x0228
- #define X25if_packet_facility_decode 0x0229
- #define X25if_packet_userdata_decode 0x022A
-
- /* .................................................................................................... */
- /* . . */
- /* . X.25 Connect Errors . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_call_error 0x0280
- #define X25if_call_cleared 0x0281 /* status_code left byte = clearing cause */
- /* status_code right byte = diagnostic code */
-
- /* .................................................................................................... */
- /* . . */
- /* . X.25 Listen Registration Errors . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_reg_format_error 0x02A0 /* status_code = registration error */
- #define X25if_reg_format_invalid_code 0x02A1
- #define X25if_reg_format_no_pri_code 0x02A2
- #define X25if_reg_format_data_size 0x02A3
- #define X25if_reg_format_mask_size 0x02A4
- #define X25if_reg_format_mask_data_size 0x02A5
- #define X25if_reg_format_invalid_mask 0x02A6
-
- /* .................................................................................................... */
- /* . . */
- /* . X.25 Listen Duplicate Registration Attempt . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_duplicate_registration 0x02B0 /* status_code = registration error */
- #define X25if_dup_reg_data 0x02B2
- #define X25if_dup_reg_calling_addr 0x02B4
- #define X25if_dup_reg_called_addr 0x02B5
- #define X25if_dup_reg_calling_nsap 0x02B6
- #define X25if_dup_reg_called_nsap 0x02B7
- #define X25if_dup_reg_cug 0x02BA
- #define X25if_dup_reg_bcug 0x02BB
- #define X25if_dup_reg_reverse_charging 0x02BE
- #define X25if_dup_reg_fast_select 0x02BF
-
- /* .................................................................................................... */
- /* . . */
- /* . Chooser Access . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_chooser_error 0x0300
- #define X25if_chooser_not_avail 0x0301
- #define X25if_chooser_nbp_format 0x0308
-
- /* .................................................................................................... */
- /* . . */
- /* . Address Book Access . */
- /* . . */
- /* .................................................................................................... */
-
- #define X25if_addressbook_error 0x0310
- #define X25if_addressbook_not_avail 0x0311
- #define X25if_addressbook_open_err 0x0312 /* status_code = addressbook error */
- #define X25if_addressbook_access_err 0x0313 /* status_code = addressbook error */
- #define X25if_addressbook_nbp_format 0x0318
- #define X25if_addressbook_data_format 0x0319
- #define X25if_addressbook_no_svr_rec 0x031A
- #define X25if_addressbook_no_cnt_rec 0x031B
- #define X25if_addressbook_no_data_rec 0x031C
-
-
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Status Codes ( "status_code" ) * */
- /* * * */
- /* **************************************************************************************************** */
-
- #define X25if_no_status 0x0000
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Values for the useage type parameter of "X25_Open" call * */
- /* * * */
- /* **************************************************************************************************** */
-
- typedef enum {
- application_type = 0,
- desk_accessory_type = 1,
- driver_type = 2
- } useage_type_def;
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Values for the cnct_method parameter of "X25_Server_Connect" call * */
- /* * * */
- /* **************************************************************************************************** */
-
- typedef enum {
- connect_via_best = 0,
- connect_via_ipc = 1,
- connect_via_adsp = 2
- } cnct_method_def;
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Values for the mode parameter of the "X25_Address_Book" call * */
- /* * * */
- /* **************************************************************************************************** */
-
- typedef enum {
- address_book_select = 0,
- address_book_edit = 1,
- address_book_browse = 2
- } addr_book_mode_def;
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Values for the returned message_type parameter of the "X25_decode_header" call * */
- /* * * */
- /* **************************************************************************************************** */
-
- typedef enum {
- X25_unknown_msg = 0,
- X25_packet_msg = 1,
- X25_server_msg = 2,
- X25_admin_msg = 3,
- X25_login_msg = 4
- } message_type_def;
-
-
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Returned Structure for the "X25_Server_State" call * */
- /* * * */
- /* **************************************************************************************************** */
-
- /* .................................................................................................... */
- /* . . */
- /* . The Server "Connection State" definition . */
- /* . . */
- /* .................................................................................................... */
-
- typedef enum {
- connection_unknown = 0,
- connection_closed = 1,
- connection_closing = 2,
- connection_opening = 3,
- connection_open = 4
- } connection_state_def;
-
- /* .................................................................................................... */
- /* . . */
- /* . The Server "Authorization State" definition . */
- /* . . */
- /* .................................................................................................... */
-
- typedef enum {
- authorize_unknown = 0,
- authorize_closed = 1,
- authorize_closing = 2,
- authorize_opening = 3,
- authorize_open = 4
- } authorize_state_def;
-
- /* .................................................................................................... */
- /* . . */
- /* . The actual "Connection Method" definition . */
- /* . . */
- /* .................................................................................................... */
-
- typedef enum {
- via_unknown = 0,
- via_ipc = 1,
- via_adsp = 2
- } connection_method_def;
-
- /* .................................................................................................... */
- /* . . */
- /* . The Server "Transmission State" definition . */
- /* . . */
- /* .................................................................................................... */
-
- typedef struct {
- unsigned write_priority_data_avail : 1;
- unsigned write_normal_data_avail : 1;
- unsigned /* reserved */ : 1;
- unsigned /* reserved */ : 1;
- unsigned read_priority_data_avail : 1;
- unsigned read_normal_data_avail : 1;
- unsigned /* reserved */ : 1;
- unsigned /* reserved */ : 1;
- unsigned shutdown : 1;
- unsigned shutdown_by_timeouts : 1;
- unsigned shutdown_by_remote : 1;
- unsigned /* reserved */ : 1;
- unsigned /* reserved */ : 1;
- unsigned /* reserved */ : 1;
- unsigned /* reserved */ : 1;
- unsigned /* reserved */ : 1;
- } server_transmission_def;
-
- /* .................................................................................................... */
- /* . . */
- /* . The "X.25 VC/PVC Circuit State" definition . */
- /* . . */
- /* .................................................................................................... */
-
- typedef enum {
- circuit_unknown = 0,
- circuit_closed = 1,
- circuit_closing = 2,
- circuit_opening_outgoing = 3,
- circuit_opening_incoming = 4,
- circuit_open = 5
- } circuit_state_def;
-
- /* .................................................................................................... */
- /* . . */
- /* . The returned "Server State" record . */
- /* . . */
- /* .................................................................................................... */
-
- typedef struct server_state_def {
- connection_state_def connection_state : 8;
- authorize_state_def authorize_state : 8;
- connection_method_def connection_method : 8;
- unsigned /* reserved */ : 8;
- server_transmission_def server_transmission; /* :16; */
- circuit_state_def circuit_state : 8;
- unsigned /* reserved */ : 8;
- } server_state_def;
-
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Returned Structure for the "X25_Link_State" call * */
- /* * * */
- /* **************************************************************************************************** */
-
- typedef struct link_state_def {
-
- enum {
- level_1_disconnected = 255,
- level_1_setup = 0,
- level_1_connected = 1
- } level_1_state : 8;
-
- enum {
- level_2_disconnected = 255,
- level_2_setup = 0,
- level_2_connected = 1
- } level_2_state : 8;
-
- unsigned /* reserved */ : 8;
-
- unsigned char number_of_vcs;
-
- unsigned /* reserved */ : 4;
- unsigned RI_status : 1;
- unsigned DSR_status : 1;
- unsigned CTS_status : 1;
- unsigned DCD_status : 1;
-
- unsigned /* reserved */ : 8;
-
- } link_state_def;
-
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Returned Structure for the "X25_vc_parameters" call * */
- /* * * */
- /* **************************************************************************************************** */
-
- typedef struct vc_parameters_def {
-
- unsigned char network_address [32]; /* configured network address / sub-address */
-
- unsigned char local_address [32]; /* actual local network address */
- unsigned char remote_address [32]; /* actual remote network address */
-
- unsigned line_type :08 ; /* type of line ( 0=DCE, 1=DTE ) */
- unsigned vc_type :08 ; /* type of vc ( 0=SVC, 1=PVC ) */
-
- unsigned X25_lcn :16 ; /* X.25 VC/PVC Logical Channel Number */
-
- unsigned svr_lun :16 ; /* Server Logical Unit Number */
- unsigned svr_adapter :08 ; /* Server Adapter */
- unsigned svr_pre_processor :08 ; /* Server Pre Processor */
- enum { /* Server version being run */
- ver_unknown = 0, /* Unknown Version */
- ver_76 = 1, /* CCITT 1976 */
- ver_80 = 2, /* CCITT 1980 */
- ver_84 = 3, /* CCITT 1984 */
- ver_88 = 4 /* CCITT 1988 */
- } X25_ver :08 ;
-
-
- unsigned act_rx_pkt_size :16 ; /* actual agreeded length of receive data packets */
- unsigned act_tx_pkt_size :16 ; /* actual agreeded length of transmit data packets */
- unsigned def_rx_pkt_size :16 ; /* default length of receive data packets */
- unsigned def_tx_pkt_size :16 ; /* default length of transmit data packets */
- unsigned neg_rx_pkt_size :16 ; /* max negotiation length of receive data packets */
- unsigned neg_tx_pkt_size :16 ; /* max negotiation length of transmit data packets */
-
- unsigned act_rx_win_size :16 ; /* actual agreeded length of receive window */
- unsigned act_tx_win_size :16 ; /* actual agreeded length of transmit window */
- unsigned def_rx_win_size :16 ; /* default length of receive window */
- unsigned def_tx_win_size :16 ; /* default length of transmit window */
- unsigned neg_rx_win_size :16 ; /* max negotiation length of receive window */
- unsigned neg_tx_win_size :16 ; /* max negotiation length of transmit window */
-
- unsigned act_rx_throughput :16; /* actual agreeded value of receive throughput */
- unsigned act_tx_throughput :16; /* actual agreeded value of transmit throughput */
- unsigned def_rx_throughput :16; /* default value of receive throughput */
- unsigned def_tx_throughput :16; /* default value of transmit throughput */
- unsigned neg_rx_throughput :16; /* max negotiation value of receive throughput */
- unsigned neg_tx_throughput :16; /* max negotiation value of transmit throughput */
-
- unsigned local_charg_prev :01; /* local charging prevention */
- unsigned forbid_incoming :01; /* forbid incoming calls */
- unsigned forbid_outgoing :01; /* forbid outgoing calls */
- unsigned :05; /* (reserved) */
- unsigned act_rev_charging :01; /* actual reverse charging acceptance in use */
- unsigned allow_rev_charging :01; /* allow reverse charging acceptance */
- unsigned :02; /* (reserved) */
- unsigned act_fast_select :01; /* actual fast select in use */
- unsigned allow_fast_select :01; /* allow fast select */
- unsigned :02; /* (reserved) */
- unsigned allow_d_bit_usage :01; /* allow use of D-bit */
- unsigned :15; /* (reserved) */
-
- unsigned negociation :08; /* throughput et flow ctrl nego */
- unsigned cug :08; /* closed user group selection */
- unsigned bcug :08; /* Bilateral cug selection */
-
- } vc_parameters_def;
-
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * Macros for setting the timeout values in the tcb * */
- /* * * */
- /* **************************************************************************************************** */
-
- #define timeout_sec(seconds) ((seconds)*60)
-
- #define timeout_millisec(millisec) ((((millisec)+99)/100)*6)
-
- #define timeout_infinite (0)
-
- #define timeout_non_blocking (-1)
-
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * X25_Interface Library Functions * */
- /* * * */
- /* **************************************************************************************************** */
-
-
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
- /* + + */
- /* + Typedefs for the memory allocation routine which is passed as parameters + */
- /* + + */
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-
- typedef pascal Ptr (*X25_Memory_ProcPtr) ( Size byte_count );
-
-
-
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
- /* + + */
- /* + The directly callable routines + */
- /* + + */
- /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-
- extern pascal OSErr X25_Open ( X25_Memory_ProcPtr memory_allocator ,
- useage_type_def useage_type );
- extern pascal OSErr X25_Close ( );
-
- extern pascal OSErr X25_vccb_Open ( tcb_def * const tcb_ptr ,
- X25_Memory_ProcPtr memory_allocator ,
- short max_packet_size );
- extern pascal OSErr X25_vccb_Close ( tcb_def * const tcb_ptr );
-
- extern pascal OSErr X25_Chooser ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Address_Book ( tcb_def * const tcb_ptr ,
- addr_book_mode_def mode );
-
- extern pascal OSErr X25_Set_Server_ID ( tcb_def * const tcb_ptr ,
- char * const server_name_string ,
- char * const server_zone_string );
- extern pascal OSErr X25_Get_Server_ID ( tcb_def * const tcb_ptr ,
- char * const server_name_string ,
- char * const server_zone_string );
-
- extern pascal OSErr X25_User_ID ( tcb_def * const tcb_ptr ,
- Boolean force_display );
- extern pascal OSErr X25_Set_User_ID ( tcb_def * const tcb_ptr ,
- char * const user_name_string ,
- char * const user_password_string );
- extern pascal OSErr X25_Get_User_ID ( tcb_def * const tcb_ptr ,
- char * const user_name_string ,
- char * const user_password_string );
-
- extern pascal OSErr X25_Server_Connect ( tcb_def * const tcb_ptr ,
- cnct_method_def cnct_method );
- extern pascal OSErr X25_Server_Authorize ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Server_Discnct ( tcb_def * const tcb_ptr );
-
- extern pascal OSErr X25_Read ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Write ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Kill_Read ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Kill_Write ( tcb_def * const tcb_ptr );
-
- extern pascal OSErr X25_Connect ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Call ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Listen ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Accept ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Discnct ( tcb_def * const tcb_ptr );
-
- extern pascal OSErr X25_encode_call_reg ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_encode_call_req ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_encode_call_acpt ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_encode_clear ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_encode_interrupt ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_encode_reset ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_encode_text ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_encode_data ( tcb_def * const tcb_ptr );
-
- extern pascal OSErr X25_decode_header ( tcb_def * const tcb_ptr ,
- message_type_def * message_type_ptr ,
- short * packet_type_ptr );
-
- extern pascal OSErr X25_decode_clear ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_decode_interrupt ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_decode_reset ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_decode_text ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_decode_data ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_decode_userdata ( tcb_def * const tcb_ptr );
-
- extern pascal OSErr X25_decode_diagnostic ( tcb_def * const tcb_ptr );
-
- extern pascal OSErr X25_decode_admin ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Admin_Msg ( tcb_def * const tcb_ptr );
-
- extern pascal OSErr X25_Server_State ( tcb_def * const tcb_ptr ,
- server_state_def * const server_state_ptr );
- extern pascal OSErr X25_VC_Parameters ( tcb_def * const tcb_ptr ,
- vc_parameters_def * const info_ptr );
-
- extern pascal OSErr X25_Link_State ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Server_Config ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Link_Config ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_Link_Statistics ( tcb_def * const tcb_ptr );
- extern pascal OSErr X25_VC_Statistics ( tcb_def * const tcb_ptr );
- extern pascal long X25_msg_header_size ( );
-
- extern pascal OSErr X25_error_decode ( OSErr return_value ,
- OSErr status_value ,
- char * const user_msg_ptr );
-
- extern pascal OSErr X25_set_read_hook ( tcb_def * const tcb_ptr ,
- ProcPtr hook_routine );
- extern pascal OSErr X25_set_write_hook ( tcb_def * const tcb_ptr ,
- ProcPtr hook_routine );
-
- extern pascal long X25_StackSpace ( );
- extern pascal OSErr X25_check_system ( );
-
-
- /* **************************************************************************************************** */
- /* * * */
- /* * End * */
- /* * * */
- /* **************************************************************************************************** */
-
- #endif _X25_Interface_Includes_
-